﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AlgoritmoConstrutivo.entidades
{
    public class GerenciadorNos
    {
        private Dictionary<String, No> nos = new Dictionary<string,No>();
        private static int id = -1;

        public void reiniciaGerenciadorNos()
        {
            nos = new Dictionary<string, No>(); 

        }


        public static void reiniciaIds()
        {
            id = -1;
            
        }

        public No InsertNo(String modulo)
        {
            modulo = modulo.Trim();
            if (modulo == null)
                throw new ArgumentNullException(" Nao eh possivel adicionar um modulo nulo no gerenciador de nos. O id corrente eh " + GerenciadorNos.id);

            No no;

            if (!nos.TryGetValue(modulo, out no))
            {
                no = new No(++GerenciadorNos.id, modulo);
                this.nos.Add(modulo, no);
            }

            return no;
        }
    }
}
